home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 65.zip / BS1 part 65 / DevPac v3.02b.adf / include / devices / inputevent.i < prev    next >
Text File  |  1991-11-20  |  4KB  |  146 lines

  1.     IFND    DEVICES_INPUTEVENT_I
  2. DEVICES_INPUTEVENT_I    SET    1
  3. **
  4. **    $Filename: devices/inputevent.i $
  5. **    $Release: 1.3 $
  6. **
  7. **    input event definitions     
  8. **
  9. **    (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.  
  13.    IFND     DEVICES_TIMER_I
  14.    INCLUDE  "devices/timer.i"
  15.    ENDC
  16.  
  17. *------ constants ----------------------------------------------------
  18.   
  19. *   --- InputEvent.ie_Class ---
  20. * A NOP input event
  21. IECLASS_NULL        EQU   $00
  22. * A raw keycode from the keyboard device
  23. IECLASS_RAWKEY        EQU   $01
  24. * A raw mouse report from the game port device
  25. IECLASS_RAWMOUSE    EQU   $02
  26. * A private console event
  27. IECLASS_EVENT        EQU   $03
  28. * A Pointer Position report
  29. IECLASS_POINTERPOS    EQU   $04
  30. * A timer event
  31. IECLASS_TIMER        EQU   $06
  32. * select button pressed down over a Gadget (address in ie_EventAddress)
  33. IECLASS_GADGETDOWN    EQU $07
  34. * select button released over the same Gadget (address in ie_EventAddress)
  35. IECLASS_GADGETUP    EQU   $08
  36. * some Requester activity has taken place.  See Codes REQCLEAR and REQSET
  37. IECLASS_REQUESTER    EQU   $09
  38. * this is a Menu Number transmission (Menu number is in ie_Code)
  39. IECLASS_MENULIST    EQU   $0A
  40. * User has selected the active Window's Close Gadget
  41. IECLASS_CLOSEWINDOW    EQU   $0B
  42. * this Window has a new size
  43. IECLASS_SIZEWINDOW    EQU   $0C
  44. * the Window pointed to by ie_EventAddress needs to be refreshed
  45. IECLASS_REFRESHWINDOW    EQU   $0D
  46. * new preferences are available
  47. IECLASS_NEWPREFS    EQU   $0E
  48. * the disk has been removed
  49. IECLASS_DISKREMOVED    EQU   $0F
  50. * the disk has been inserted
  51. IECLASS_DISKINSERTED    EQU   $10
  52. * the window is about to be been made active
  53. IECLASS_ACTIVEWINDOW    EQU   $11
  54. * the window is about to be made inactive
  55. IECLASS_INACTIVEWINDOW    EQU   $12
  56.  
  57. * the last class
  58. IECLASS_MAX        EQU   $12
  59.  
  60. *   --- InputEvent.ie_Code --- 
  61. *  IECLASS_RAWKEY
  62. IECODE_UP_PREFIX    EQU   $80
  63. IECODEB_UP_PREFIX    EQU   7
  64. IECODE_KEY_CODE_FIRST    EQU   $00
  65. IECODE_KEY_CODE_LAST    EQU   $77
  66. IECODE_COMM_CODE_FIRST    EQU   $78
  67. IECODE_COMM_CODE_LAST    EQU   $7F
  68.   
  69. *  IECLASS_ANSI
  70. IECODE_C0_FIRST        EQU   $00
  71. IECODE_C0_LAST        EQU   $1F
  72. IECODE_ASCII_FIRST    EQU   $20
  73. IECODE_ASCII_LAST    EQU   $7E
  74. IECODE_ASCII_DEL    EQU   $7F
  75. IECODE_C1_FIRST        EQU   $80
  76. IECODE_C1_LAST        EQU   $9F
  77. IECODE_LATIN1_FIRST    EQU   $A0
  78. IECODE_LATIN1_LAST    EQU   $FF
  79.   
  80. *  IECLASS_RAWMOUSE
  81. IECODE_LBUTTON        EQU   $68  ; also uses IECODE_UP_PREFIX
  82. IECODE_RBUTTON        EQU   $69  ;
  83. IECODE_MBUTTON        EQU   $6A  ;
  84. IECODE_NOBUTTON        EQU   $FF
  85.   
  86. *  IECLASS_EVENT
  87. IECODE_NEWACTIVE    EQU   $01  ; active input window changed
  88.  
  89. *  IECLASS_REQUESTER Codes
  90. * REQSET is broadcast when the first Requester (not subsequent ones) opens
  91. * in the Window
  92. IECODE_REQSET        EQU   $01
  93. * REQCLEAR is broadcast when the last Requester clears out of the Window
  94. IECODE_REQCLEAR        EQU   $00
  95.  
  96.   
  97. *   --- InputEvent.ie_Qualifier ---
  98. IEQUALIFIER_LSHIFT    EQU   $0001
  99. IEQUALIFIERB_LSHIFT    EQU   0
  100. IEQUALIFIER_RSHIFT    EQU   $0002
  101. IEQUALIFIERB_RSHIFT    EQU   1
  102. IEQUALIFIER_CAPSLOCK    EQU   $0004
  103. IEQUALIFIERB_CAPSLOCK    EQU   2
  104. IEQUALIFIER_CONTROL    EQU   $0008
  105. IEQUALIFIERB_CONTROL    EQU   3
  106. IEQUALIFIER_LALT    EQU   $0010
  107. IEQUALIFIERB_LALT    EQU   4
  108. IEQUALIFIER_RALT    EQU   $0020
  109. IEQUALIFIERB_RALT    EQU   5
  110. IEQUALIFIER_LCOMMAND    EQU   $0040
  111. IEQUALIFIERB_LCOMMAND    EQU   6
  112. IEQUALIFIER_RCOMMAND    EQU   $0080
  113. IEQUALIFIERB_RCOMMAND    EQU   7
  114. IEQUALIFIER_NUMERICPAD    EQU   $0100
  115. IEQUALIFIERB_NUMERICPAD EQU   8
  116. IEQUALIFIER_REPEAT    EQU   $0200
  117. IEQUALIFIERB_REPEAT    EQU   9
  118. IEQUALIFIER_INTERRUPT    EQU   $0400
  119. IEQUALIFIERB_INTERRUPT    EQU   10
  120. IEQUALIFIER_MULTIBROADCAST    EQU   $0800
  121. IEQUALIFIERB_MULTIBROADCAST   EQU   11
  122. IEQUALIFIER_MIDBUTTON    EQU   $1000
  123. IEQUALIFIERB_MIDBUTTON    EQU   12
  124. IEQUALIFIER_RBUTTON    EQU   $2000
  125. IEQUALIFIERB_RBUTTON    EQU   13
  126. IEQUALIFIER_LEFTBUTTON    EQU   $4000
  127. IEQUALIFIERB_LEFTBUTTON EQU   14
  128. IEQUALIFIER_RELATIVEMOUSE     EQU   $8000
  129. IEQUALIFIERB_RELATIVEMOUSE    EQU   15
  130.   
  131. *------ InputEvent ---------------------------------------------------
  132.   
  133.  STRUCTURE  InputEvent,0
  134.    APTR     ie_NextEvent          ; the chronologically next event
  135.    UBYTE   ie_Class          ; the input event class 
  136.    UBYTE   ie_SubClass          ; optional subclass of the class
  137.    UWORD   ie_Code          ; the input event code
  138.    UWORD   ie_Qualifier          ; qualifiers in effect for the event
  139.    LABEL ie_EventAddress      ; a pointer parameter for an event
  140.    WORD       ie_X              ; the pointer position for the event,
  141.    WORD       ie_Y              ;      usually in canvas relative coords 
  142.    STRUCT  ie_TimeStamp,TV_SIZE     ; the system tick at the event
  143.    LABEL   ie_SIZEOF
  144.  
  145.     ENDC    ; DEVICES_INPUTEVENT_I
  146.